﻿//IEntityRegistry.cs
//Copyright (c) 2013 StockSharp LLC, all rights reserved.
//This code module is part of StockSharp library.
//This code is licensed under the GNU GENERAL PUBLIC LICENSE Version 3.
//See the file License.txt for the license details.
//More info on: http://stocksharp.com

namespace StockSharp.Algo.Storages
{
	using StockSharp.BusinessEntities;

	/// <summary>
	/// Интерфейс, описывающий хранилище торговых сущностей.
	/// </summary>
	public interface IEntityRegistry
	{
		/// <summary>
		/// Список бирж.
		/// </summary>
		IStorageEntityList<Exchange> Exchanges { get; }

		/// <summary>
		/// Список биржевых площадок.
		/// </summary>
		IStorageEntityList<ExchangeBoard> ExchangeBoards { get; }

		/// <summary>
		/// Список инструментов.
		/// </summary>
		IStorageEntityList<Security> Securities { get; }

		/// <summary>
		/// Список портфелей.
		/// </summary>
		IStorageEntityList<Portfolio> Portfolios { get; }

		/// <summary>
		/// Список позиций.
		/// </summary>
		IStorageEntityList<Position> Positions { get; }

		/// <summary>
		/// Список собственных сделок.
		/// </summary>
		IStorageEntityList<MyTrade> MyTrades { get; }

		/// <summary>
		/// Список тиковых сделок.
		/// </summary>
		IStorageEntityList<Trade> Trades { get; }

		/// <summary>
		/// Список заявок.
		/// </summary>
		IStorageEntityList<Order> Orders { get; }

		/// <summary>
		/// Список ошибок регистрации и снятия заявок.
		/// </summary>
		IStorageEntityList<OrderFail> OrderFails { get; }
	}
}